package com.zhentao.datacontrol.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhentao.datacontrol.domain.dto.RuleGroupDTO;
import com.zhentao.datacontrol.domain.entity.RuleGroup;

import java.util.List;

public interface RuleGroupService extends IService<RuleGroup> {

    /**
     * 获取树形结构的分组列表
     */
    List<RuleGroupDTO> getGroupTree();

    /**
     * 获取顶级分组列表
     */
    List<RuleGroupDTO> getTopLevelGroups();

    /**
     * 获取指定父级下的子分组
     */
    List<RuleGroupDTO> getChildGroups(Long parentId);

    /**
     * 创建分组
     */
    Long createGroup(RuleGroupDTO groupDTO);

    /**
     * 更新分组
     */
    boolean updateGroup(RuleGroupDTO groupDTO);

    /**
     * 删除分组（级联删除子分组和规则）
     */
    boolean deleteGroup(Long id);

    /**
     * 移动分组位置
     */
    boolean moveGroup(Long id, Long targetParentId, Integer targetSortOrder);

    /**
     * 检查分组名称是否存在
     */
    boolean checkGroupNameExists(String groupName, Long parentId, Long excludeId);

    /**
     * 获取分组详情
     */
    RuleGroupDTO getGroupDetail(Long id);

    /**
     * 批量更新排序
     */
    boolean updateSortOrders(List<Long> ids, List<Integer> sortOrders);
}
